package cn.iocoder.yudao.module.iot.core.biz;

import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.iot.core.biz.dto.IotSceneAuthReqDTO;
import cn.iocoder.yudao.module.iot.core.biz.dto.IotSceneGetReqDTO;
import cn.iocoder.yudao.module.iot.core.biz.dto.IotSceneRespDTO;

/**
 * IoT 场景通用 API
 */
public interface IotSceneCommonApi {

    /**
     * 场景认证
     * @param authReqDTO 认证请求
     * @return 认证结果
     */
    CommonResult<Boolean> authScene(IotSceneAuthReqDTO authReqDTO);

    /**
     * 获取场景信息
     * @param infoReqDTO 场景信息请求
     * @return 场景信息
     */
    CommonResult<IotSceneRespDTO> getScene(IotSceneGetReqDTO infoReqDTO);

    /**
     * 获取所有场景
     * @param userId 用户ID，可为null
     * @return 场景列表
     */
    CommonResult<java.util.List<IotSceneRespDTO>> getAllScenes(Long userId);

    /**
     * 根据设备ID获取相关的场景动作信息
     * @param deviceId 设备ID
     * @return 包含该设备的场景动作列表
     */
    CommonResult<java.util.List<IotSceneRespDTO>> getSceneActionsByDeviceId(Long deviceId);

    /**
     * 获取所有启用的场景（包括定时场景）
     * @return 启用的场景列表
     */
    CommonResult<java.util.List<IotSceneRespDTO>> getAllEnabledScenes();
} 